import { ActivatedRouteSnapshot, Params } from '@angular/router';
import { TranslateService } from '@ngx-translate/core';

/**
 * 面包屑导航项接口
 */
export interface BreadCrumb {
  id: string;
  label: string;
  labelFunction?: () => string;
  icon: string;
  link: any[];
  queryParams: Params;
}

/**
 * 面包屑标签函数类型
 */
export type BreadCrumbLabelFunction<C> = (route: ActivatedRouteSnapshot, translate: TranslateService, component: C, data?: any) => string;

/**
 * 面包屑配置接口
 */
export interface BreadCrumbConfig<C> {
  labelFunction: BreadCrumbLabelFunction<C>;
  menuId?: string;
  label?: string;
  icon?: string;
  skip: boolean;
}